﻿//
// <author>David Nohejl</author>
//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using WPFTrees.Parser;

namespace WPFTrees.Layouts
{
    /// <summary>
    /// Nakresleni stromu ve kterem jsou hrany lomene cary.
    /// </summary>
    public interface IBranchDrawer
    {
        /// <summary>
        /// Vytvori element reprezentujici hranu mezi rodicem a synem.
        /// </summary>
        /// <returns>
        /// Element vizualne reprezentujici hranu mezi rodicem a synem.
        /// </returns>        
        FrameworkElement CreateBranch();

        /// <summary>
        /// Umisti hranu mezi rodicem a synem.
        /// </summary>
        /// <param name="branch">Hrana k umisteni</param>
        /// <param name="root">Rodicovsky uzel.</param>
        /// <param name="node">Uzel syna.</param>
        /// <param name="rootPos">Pozice rodice.</param>
        /// <param name="nodePos">Pozice syna.</param>
        void PositionBranch(FrameworkElement branch, NewickNode root, 
            NewickNode node, Point rootPos, Point nodePos);
    }
}
